const app = getApp()

import Dialog from '@vant/weapp/dialog/dialog';
import Notify from '@vant/weapp/notify/notify';

import {
    meetingRoomDetailRq,
    getCustomerTicketRq,
    calculateMeetingRoomAmountRq,
    saveMeetingRecordRq
} from "../../../../api/meeting/meetingRoom.js"

import {
    selfFormatTimeYMD,
    selfFormatTimeHM,
    twoTimeInterval,
    selfArrSum
} from "../../../../utils/util.js"


Page({

    /**
     * 页面的初始数据
     */
    data: {
        IMG_NAME: app.IMG_NAME,
        protocolFlag: true,
        protocolTitle: '《会议室服务协议》',
        meetingRoomId: null,
        startTime: null,
        endTime: null,
        selectDay: null,
        selectCountTime: null,
        bannerList: [],
        room: {},
        userData: {},
        couponId: '',
        couponData: {},
        couponList: [],
        couponCount: 0,
        couponUseList: [],
        couponUseCount: 0,
        couponNotUseList: [],
        couponNotUseCount: 0,
        countAmount: '',
        totalAmount: '',
        priceDialogShow: false,
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        console.log('onLoad', options);
        let selectCountTime = selfFormatTimeHM(options.startTime) + "-" + selfFormatTimeHM(options.endTime) + ' 共计' + twoTimeInterval(options.startTime, options.endTime)
        this.setData({
            ...options,
            userData: wx.getStorageSync('user'),
            selectDay: selfFormatTimeYMD(options.startTime),
            selectCountTime
        })
        // 详细信息
        this.getDetail();
        // 获取优惠卷
        this.getCustomerTicket();
    },

    // 详细信息
    getDetail() {
        let _this = this;
        meetingRoomDetailRq(this.data.meetingRoomId).then(res => {
            let detail = res.roomContent;
            let bannerList = []
            if (detail.indoorPicUrl) {
                try {
                    bannerList = JSON.parse(detail.indoorPicUrl).map(item => item.url)
                } catch (error) {
                    console.log(`JSON error : ${error}`);
                }
            }
            _this.setData({
                room: detail,
                bannerList
            })
        })
    },

    // 获取优惠卷
    getCustomerTicket() {
        let _this = this;
        getCustomerTicketRq({
            "userId": _this.data.userData.id,
            "customerId": _this.data.userData.icsCustomerId,
            "meetingId": _this.data.meetingRoomId,
            "type": '1'
        }).then(res => {
            let nowTime = new Date().getTime();
            let dataList = res.data.map(item => {
                item.startTime = selfFormatTimeYMD(item.startTime)
                item.endDate = selfFormatTimeYMD(item.endDate)
                let kaishiTime = new Date(item.startTime + " 00:00:00")
                let jieshuTime = new Date(item.endDate + " 23:59:59")
                if (nowTime >= kaishiTime && nowTime <= jieshuTime) {
                    item.isDisable = false
                } else {
                    item.isDisable = true
                }
                return item;
            })
            // 可用
            let useList = res.data.filter(item => !item.isDisable)
            // 不可用
            let notUseList = res.data.filter(item => item.isDisable)

            _this.setData({
                couponList: dataList,
                couponCount: selfArrSum(dataList.map(item => item.num)),
                couponUseList: useList,
                couponUseCount: selfArrSum(useList.map(item => item.num)),
                couponNotUseList: notUseList,
                couponNotUseCount: selfArrSum(notUseList.map(item => item.num)),
            })
        })
    },


    // 主题修改监听
    titleChange(event) {
        this.setData({
            title: event.detail
        })
    },

    // 跳转-空间设施
    jumpMeetingFacilities() {
        let meetingRoomId = this.data.meetingRoomId;
        wx.navigateTo({
            url: '/pages/meeting/meetingRoom/meetingFacilities/meetingFacilities?meetingRoomId=' + meetingRoomId,
        })
    },

    // 跳转-优惠卷
    jumpMeetingCoupon() {
        let _this = this;
        wx.navigateTo({
            url: `/pages/meeting/meetingRoom/meetingCoupon/meetingCoupon?type=1&couponId=${_this.data.couponId}&meetingRoomId=${_this.data.meetingRoomId}`,
        })
    },

    // 协议点击
    protocolChange() {
        let _this = this;
        _this.setData({
            protocolFlag: !_this.data.protocolFlag
        });
    },

    // 跳转协议
    jumpProtocol() {
        let _this = this;
        wx.navigateTo({
            url: "/pages/meeting/meetingRoom/meetingProtocol/meetingProtocol?title=" + _this.data.protocolTitle,
        })
    },

    // 价格明细
    priceDetail() {
        let _this = this
        _this.setData({
            priceDialogShow: true
        })
    },

    // 提交订单
    submitCase() {
        let _this = this
        // 参数校验
        if (!_this.data.title) {
            // 错误提示
            Notify({
                type: 'danger',
                message: '请输入会议主题!'
            });
            return;
        }
        if (!_this.data.protocolFlag) {
            // 错误提示
            Notify({
                type: 'danger',
                message: `请同意${_this.data.protocolTitle}!`
            });
            return;
        }

        saveMeetingRecordRq({
            "roomContentId": _this.data.meetingRoomId,
            "userId": _this.data.userData.id,
            "ticketId": _this.data.couponId,
            "customerId": _this.data.userData.icsCustomerId,
            "title": _this.data.title,
            "startTime": _this.data.startTime,
            "endDate": _this.data.endTime,
            "orderMoney": _this.data.totalAmount,
        }).then(res => {
            console.log('saveMeetingRecordRq', res);
            if (res.code == 0) {
                // 支付金额大于0，需要付款
                if (_this.data.totalAmount > 0) {
                    wx.redirectTo({
                        url: "/pages/meeting/pay/waitPay/waitPay?id=" + res.reservationId,
                    })
                } else {
                    wx.reLaunch({
                        url: '/pages/meeting/reservationRecord/meetingRecord/meetingRecord',
                    })
                }
            } else {
                // 错误提示
                Notify({
                    type: 'danger',
                    message: res.msg
                });
            }
        })
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {
        console.log('onShow');
        let _this = this
        // 更新选择的优惠卷
        if (_this.data.couponId) {
            let couponData = _this.data.couponList.find(item => item.ticketId == _this.data.couponId)
            _this.setData({
                couponData
            })
        }
        // 查询金额
        calculateMeetingRoomAmountRq({
            "startTime": _this.data.startTime,
            "endDate": _this.data.endTime,
            "roomContentId": _this.data.meetingRoomId,
            "ticketId": _this.data.couponId
        }).then(res => {
            console.log('calculateMeetingRoomAmountRq', res);
            _this.setData({
                countAmount: res.amount.totalMoney,
                totalAmount: res.amount.paidMoney,
            })
        })
    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})